package com.petshop.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.petshop.dto.OrderDTO;
import com.petshop.pojo.Orders;
import com.petshop.utils.Result;

/**
 * @author 20289
 * @description 针对表【orders(存储用户订单信息)】的数据库操作Service
 * @createDate 2025-03-08 22:35:56
 */
public interface OrdersService extends IService<Orders> {

    /**
     * 增加一条订单
     *
     * @param orderDTO
     * @param token
     * @return
     */
    Result insertOrder(OrderDTO orderDTO, String token);

    /**
     * 删除一条订单
     *
     * @param orderId
     * @return
     */
    Result deleteOrder(Integer orderId);

    /**
     * 修改一条订单
     *
     * @param orders
     * @return
     */
    Result updateOrder(Orders orders);

    /**
     * 查询所有订单
     *
     * @return
     */
    Result queryAllOrder(String token);

    /**
     * 根据id查询订单信息
     *
     * @param orderId
     * @return
     */
//    Result queryOrderById(Integer orderId);

    /**
     * 根据订单状态查询订单信息
     *
     * @return
     */
    Result queryOrderByStatus(String status);

    /**
     * 根据商品名模糊查询订单
     *
     * @param name
     * @return
     */
    Result queryOrderByName(String name);

    /**
     * 确认收货后修改订单状态
     *
     * @param orderId
     * @return
     */
    Result updateOrderStatus(Integer orderId);

    /**
     * 根据token获取用户的地址信息
     *
     * @param token
     * @return
     */
    Result getUserAddress(String token);

    /**
     * 管理员获取所有用户的所有订单
     *
     * @return
     */
    Result queryAllOrders(Integer flag, String status, Integer pageCount, Integer pageSize);

    /**
     * 根据订单id查询订单
     *
     * @param orderId
     * @return
     */
    Orders queryById(Integer orderId);
}
